home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 57131 / 57131.xpi / chrome / beefree.jar / content / beefree / w / bf.w.youtube.js < prev   
Encoding:
JavaScript  |  2010-01-25  |  3.5 KB  |  99 lines

  1. /*
  2.     2009 - Copyright by Bee <http://www.honeybeenet.altervista.org>.
  3.     This program is free software; you can redistribute it and/or
  4.     modify it under the terms of the GNU General Public License
  5.     as published by the Free Software Foundation; either version 2
  6.     of the License, or (at your option) any later version.
  7.  
  8.     This program is distributed in the hope that it will be useful,
  9.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11.     GNU General Public License for more details.
  12.  
  13.     You should have received a copy of the GNU General Public License
  14.     along with this program; if not, write to the Free Software
  15.     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  16. */
  17.  
  18. function beefree_w_youtube_domain(selfIndex, stack)
  19. {
  20.     //case insensitive (gmi)
  21.     var address = stack["address"];
  22.     var regexp = /(\/\/|\.)youtube\.com\//gmi;
  23.     return beefree_regexp_test(address, regexp);
  24. }
  25.  
  26. function beefree_w_youtube_host(selfIndex, stack)
  27. {
  28.     //case insensitive (gmi)
  29.     var hostname = stack["hostname"];
  30.     var regexp = /(youtube|ytimg)\.com/gmi;
  31.     return beefree_regexp_test(hostname, regexp);
  32. }
  33.  
  34. function beefree_w_youtube_replace(selfIndex, stack)
  35. {
  36.     var address = stack["address"];
  37.     var current_page = stack["current_page"];
  38.     //http://www.youtube.com/watch?v=<ID>
  39.     var URL1=/(\/\/|\.)youtube\.com\/watch\?/gmi;
  40.     var URL2=/^(\/watch\?)/gmi;// /watch? at the beginning of a string only (^)
  41.     var is_ok = beefree_is_hyperlink(address) && 
  42.                 (beefree_substr_test(address, "v=")) && 
  43.                 (beefree_regexp_test(address, URL1) || beefree_regexp_test(address, URL2));
  44.     if (is_ok)
  45.     {
  46.         //var done = false;
  47.         var address_new = "";
  48.         var v = beefree_query_get(address, "v");
  49.         if(v.length > 0)
  50.         {
  51.             address_new = address.substr(0, 1 + address.indexOf("?")) + "v=" + v;
  52.             address = address_new;
  53.         }
  54.     }
  55.     return address;
  56. }
  57.  
  58. function beefree_w_youtube_accept(selfIndex, stack)
  59. {
  60.     var address = stack["address"];
  61.     var current_page = stack["current_page"];
  62.     return beefree_is_hyperlink(address) && 
  63.             !beefree_is_protocol(address, "javascript:") &&
  64.             !beefree_is_anchor_magic(address, current_page) &&
  65.             !beefree_is_anchor(address);
  66. }
  67.  
  68. function beefree_w_youtube_confirm(selfIndex, stack)
  69. {
  70.     var address = stack["address"];
  71.     var address_original = stack["address_original"];
  72.     var current_page = stack["current_page"];
  73.     return !((beefree_website_get(selfIndex)["test.domain"])(selfIndex, stack)) || address != address_original ||
  74.             beefree_host_from_address(address) != beefree_host_from_address(current_page);
  75. }
  76.  
  77.  
  78. (function(){
  79.     var data = new Array();
  80.     data["enabled"] = true;
  81.     data["system"] = true;
  82.     data["version"] = 1;
  83.     data["name"] = "Youtube";
  84.     data["test.host"] = beefree_w_youtube_host;
  85.     data["test.domain"] = beefree_w_youtube_domain;
  86.     data["referer.remove"] = true;
  87.     data["useragent.remove"] = true;
  88.     data["links.remove"] = true;
  89.     data["links.recursion"] = true;
  90.     data["links.metaengine"] = false;
  91.     data["links.onload"] = true;
  92.     data["links.ignoredomain"] = false;
  93.     data["links.function.accept"] = beefree_w_youtube_accept;
  94.     data["links.function.replace"] = beefree_w_youtube_replace;
  95.     data["links.function.confirm"] = beefree_w_youtube_confirm;
  96.     beefree_h_script_add(data);
  97. })();
  98.  
  99.